Computer networks may be used in many applications to provide a means for sharing data, programs, and the like among a number of computers. Many computer networks use what is known as client/server system in which a network server provides a number of centralized hardware/software resources for a number of client computers in the network.
One disadvantage of client/server systems, is that if the server is shut down for any length of time, the operation of the network and the various client computers may be disrupted. Such disruptions defeat one of the fundamental advantages of the personal computer (PC), namely, the stand-alone operability of the PC.
Network servers may be shut down periodically for a number of reasons. For example, it may be necessary to install software upgrades or to reset stuck applications or the like. In addition, it may be necessary to shut down a server computer to install hardware upgrades or to replace defective hardware components. In addition, a server may be shut down in order to swap hardware or to install accessory hardware devices. For example, it may be desirable to attach a data storage device (e.g., portable hard drive, CD-ROM, or the like) to a server to allow client computers to access data stored on that data storage device.
Thus, it may be desirable to provide a method and apparatus whereby hardware devices may be attached or removed (i.e., inserted or ejected) from a server computer. In the prior art, techniques have been tried to allow for insertion and removal of attachments in fully initialized computer systems. One such system is disclosed, for example, in Lien et al., U.S. Pat. No. 5,386,567, issued Jan. 31, 1995 and incorporated herein by reference.
Lien utilizes pins of varying lengths on his adapter device such that when the adapter is inserted into the fully initialized computer, longer pins are used to signal the host computer that an adapter is being inserted and to supply power to the adapter prior to transmitting signals to and from the adapter.
Lien discloses using a mechanically actuated lock mechanism for his adapter which locks the adapter into the host computer until a request is made by a user to release the adapter. Moreover, the longer pins of Lien are used to allow the power supply to stabilize and settle before transmitting signals to and from the device (Col. 5, lines 10-16). A stored ID code is then transmitted to the host computer to determine if the adapter is compatible with hot insertion and attribute information read out if hot insertion is acceptable (Col. 5, lines 17-24).
The system of Lien et al. does not appear to be readily adaptable to a network environment where a plurality of client applications may be running during insertion and/or removal of a device. In a network environment, it may be necessary to maintain operation of client software during insertion and/or removal of a hardware device from the system. Moreover, such operability may also be desirable in stand-alone or client computers as well.
Some prior art systems achieve hot insertion or ejection by storing the status of a system (shadowing contents of registers and the like) into memory and suspending operations of the primary host processor. The primary host processor then may be loaded with new software to handle the hot insertion or ejection processes. Once insertion or ejection is complete, the stored contents of system registers may be restored and processing resumed.
For a stand-alone or client PC, such a system may be acceptable, as the primary user of such a PC may not be using the PC during insertion or removal. However, it may not be acceptable for a server computer in a client/server system (or a PC in a peer-to-peer LAN) to be shut down even momentarily for device insertion or ejection. If a server computer is shut down even momentarily, numerous client computers in the network may be disrupted.